package com.projeto.bola.web.modalidade;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;


public class ModalidadeDAOHibernate implements ModalidadeDAO{
	
	private Session sessao;

	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Modalidade> listar() {
		Criteria lista = sessao.createCriteria(Modalidade.class);
		return lista.list();
	}

	@Override
	public void excluir(Modalidade modalidade) {
		this.sessao.delete(modalidade);
	}

	@Override
	public Modalidade pesquisar(String nome) {
		String sql = "from Modalidade where nome_modalidade like :nome";
		Query consulta = sessao.createQuery(sql);
		consulta.setString ("nome", "%" + nome + "%");
		return (Modalidade) consulta.uniqueResult();
	}

	@Override
	public void salvar(Modalidade modalidade) {
		this.sessao.save(modalidade);
		this.sessao.flush();
	}

	@Override
	public void alterar(Modalidade modalidade) {
		this.sessao.merge(modalidade);	
		this.sessao.flush();
	}

	@Override
	public Modalidade pesquisarPorCodigo(Integer codigo) {
		return (Modalidade) this.sessao.get(Modalidade.class, codigo);
	}

}
